package store

import (
	"gopkg.in/dc0d/tinykv.v4"
)

type memoryStore struct {
	kv tinykv.KV
}

func OpenMemoryStore() Store {
	ms := &memoryStore{}
	ms.kv = tinykv.New(0)
	return ms
}

func (ms *memoryStore) Put(key string, value string) error {
	return ms.kv.Put(key, value)
}

func (ms *memoryStore) Get(key string) (value string, ok bool) {
	ret, ok := ms.kv.Get(key)
	if ok == false {
		return "", ok
	}
	value, ok = ret.(string)
	if ok == false {
		return "", ok
	}
	return value, ok
}

func (ms *memoryStore) Del(key string) error {
	ms.kv.Delete(key)
	return nil
}
